Saltar al contenido principal

Configuración de Comunicación TCP

Esta guía le muestra cómo configurar la comunicación TCP entre su cámara OV20i y dispositivos externos utilizando Node-RED. Use la comunicación TCP para intercambio de datos en tiempo real, control remoto o integración con aplicaciones y sistemas personalizados.

Cuándo Usar Comunicación TCP: Transmisión de datos en tiempo real, integración con aplicaciones personalizadas, comunicación bidireccional con sistemas externos, intercambio de datos de alta frecuencia o cuando las APIs HTTP/REST no son adecuadas.

Prerrequisitos

  • Sistema de cámara OV20i configurado y conectado
  • Dispositivo/sistema objetivo con capacidad de comunicación TCP
  • Conectividad de red entre la cámara y el dispositivo objetivo
  • Conocimientos básicos de direcciones IP y números de puerto
  • Receta activa configurada (configuración de imagen e inspección completa)

Paso 1: Verificar Configuración de Red

1.1 Verificar Dirección IP de la Cámara

  1. Navegue a Configuración del Sistema
  2. Anote la dirección IP de la cámara (ejemplo: 192.168.0.100)
  3. Verifique la máscara de subred y configuración de red

1.2 Confirmar Red del Dispositivo Objetivo

Asegure compatibilidad de red:

  • Misma subred: La cámara y el dispositivo objetivo deben estar en el mismo rango de red
  • Puertos accesibles: Los puertos del dispositivo objetivo no deben estar bloqueados por firewalls
  • Conectividad de red: Pruebe con el comando ping si es posible

1.3 Requisitos de Red

RequisitoCámaraDispositivo ObjetivoNotas
Rango IP192.168.0.100192.168.0.xxxDeben estar en la misma subred
Máscara de Subred255.255.255.0255.255.255.0Configuración estándar
Acceso a Puertos49155 (ejemplo)49155 (ejemplo)Evitar puertos reservados
FirewallPermitir tráfico TCPPermitir tráfico TCPEn ambas direcciones

Paso 2: Acceder al Editor Node-RED

2.1 Navegar al Bloque IO

  1. Haga clic en "IO Block" en el menú breadcrumb de la receta, O
  2. Seleccione "Configure I/O" desde el Editor de Recetas

2.2 Abrir Editor Node-RED

  1. Haga clic en Configure IO para entrar al editor de flujos Node-RED
  2. Verifique que la interfaz de Node-RED cargue correctamente

Punto de control: Debe ver el editor de flujos Node-RED con la paleta de nodos a la izquierda.

Paso 3: Configurar Entrada TCP (Recepción de Datos)

3.1 Añadir Nodo TCP Input

  1. Ubique el nodo "tcp in" en el panel izquierdo (sección Network)
  2. Arrastre el nodo "tcp in" al lienzo del flujo
  3. Doble clic en el nodo para configurar

3.2 Configurar Ajustes de Entrada TCP

Configuración del Nodo:

AjusteValorDescripción
TipoListen onLa cámara actúa como servidor
Puerto49155Puerto donde la cámara escucha
Modo de datosStreamFlujo continuo de datos
Tipo de datosUTF8Comunicación basada en texto
Topic(opcional)Categorización del mensaje

3.3 Pasos para Configurar Entrada TCP

  1. Configuración del Servidor:
    • Seleccione "Listen on port" (modo servidor)
    • Ingrese el número de puerto (ejemplo: 49155)
  2. Manejo de Datos:
    • Modo de datos: Seleccione "Stream" para datos continuos
    • Tipo de datos: Elija "UTF8" para texto o "Buffer" para binario
  3. Configuraciones Avanzadas:
    • Carácter de nueva línea: Deje en blanco a menos que se requiera un delimitador específico
    • Topic: Identificador opcional para enrutamiento de mensajes
  4. Haga clic en Done para guardar la configuración

3.4 Guía para Selección de Puertos

Rango de PuertosUsoRecomendación
1-1023Reservados por el sistemaEvitar
1024-49151Puertos registradosVerificar disponibilidad
49152-65535Dinámicos/privadosRecomendado

Paso 4: Configurar Salida TCP (Envío de Datos)

4.1 Añadir Nodo TCP Output

  1. Ubique el nodo "tcp out" en el panel izquierdo (sección Network)
  2. Arrastre el nodo "tcp out" al lienzo del flujo
  3. Doble clic en el nodo para configurar

image.png

4.2 Configurar Ajustes de Salida TCP

Configuración del Nodo:

AjusteValorDescripción
TipoConnect toLa cámara actúa como cliente
Host192.168.0.200Dirección IP del dispositivo objetivo
Puerto49155Puerto del dispositivo objetivo
ModoClientConexión saliente

4.3 Pasos para Configurar Salida TCP

  1. Configuración de Conexión:
    • Tipo: Seleccione "Connect to" (modo cliente)
    • Host: Ingrese la dirección IP del dispositivo objetivo
    • Puerto: Ingrese el número de puerto del dispositivo objetivo
  2. Opciones de Conexión:
    • Modo: Mantener como "Client"
    • Finalizar conexión: Configure según caso de uso
  3. Formato de Datos:
    • Base64: Usualmente deshabilitado para datos de texto
    • TLS: Habilitar solo si se requiere conexión segura
  4. Haga clic en Done para guardar la configuración

Paso 5: Crear Flujo de Comunicación

5.1 Construir el Flujo Completo

Cree un flujo que pueda enviar y recibir datos TCP:

  1. Agregue estos nodos al lienzo:
    • Nodo Inject (para disparar mensajes)
    • Nodo Function (para procesamiento de mensajes)
    • Nodo TCP Out (para enviar datos)
    • Nodo TCP In (para recibir datos)
    • Nodos Debug (para monitoreo)

5.2 Configurar Nodo Inject

  1. Doble clic en el nodo inject
  2. Configure los ajustes:
    • Nombre: "Send Message"
    • Payload: Timestamp
    • Topic: (dejar vacío)
  3. Haga clic en Done

5.3 Configurar Nodo Function

El nodo function formateará su mensaje saliente:

msg.payload = "Hello from OV20i camera";
return msg;

  1. Doble clic en el nodo function
  2. Copie el código anterior en la pestaña "On Message"
  3. Nombre: "Format Message"
  4. Haga clic en Done

5.4 Conectar las Conexiones

Conecte los nodos en este orden:

Flujo saliente:

  • Inject → Function → TCP Out
  • Function → Debug (para ver mensajes salientes)

Flujo entrante:

  • TCP In → Debug (para ver mensajes entrantes)

5.5 Estructura Completa del Flujo

Su flujo final debe tener:

  • Inject conectado a Function
  • Function conectado a TCP Out y a Debug
  • TCP In conectado a un nodo Debug separado

Resultado: Puede enviar mensajes haciendo clic en el botón inject y ver mensajes entrantes y salientes en el panel debug.

Paso 6: Configurar Formato de Mensajes

6.1 Definir Formato de Mensajes

Mantenga la estructura del mensaje simple:

Tipo de MensajeFormatoEjemplo
Texto simpleCadena de texto"Hello from camera"
Actualizaciones de estadoTexto con información"STATUS: READY"
Valores de datosFormato clave-valor"TEMPERATURE: 25.5"

6.2 Ejemplos de Mensajes Personalizados

Puede modificar el nodo function para diferentes tipos de mensajes:

Mensaje de estado simple:

msg.payload = "Camera Ready";
return msg;

Mensaje con timestamp:

msg.payload = "Time: " + new Date().toLocaleString();
return msg;

Datos con valores:

msg.payload = "INSPECTION_COUNT: 42";
return msg;

Paso 7: Desplegar y Probar Configuración

7.1 Desplegar Flujo Node-RED

  1. Haga clic en el botón Deploy (esquina superior derecha)
  2. Verifique el mensaje de éxito en el despliegue
  3. Revise los indicadores de estado de los nodos:
    • Punto verde: Conectado exitosamente
    • Punto rojo: Error de conexión
    • Punto amarillo: Intentando conexión

7.2 Probar Comunicación TCP

7.2.1 Prueba Básica de Conectividad

Usando herramientas de línea de comandos:

# Probar conexión TCP (Linux/Mac)
telnet [camera-ip] [port]
# Ejemplo: telnet 192.168.0.100 49155

# Probar con netcat
nc [camera-ip] [port]
# Ejemplo: nc 192.168.0.100 49155

Windows PowerShell:

Test-NetConnection -ComputerName 192.168.0.100 -Port 49155

7.2.2 Enviar Mensajes de Prueba

  1. Conectarse al puerto TCP de la cámara
  2. Enviar comandos de prueba:
    • "STATUS" → Debe recibir respuesta de estado
    • "TRIGGER" → Debe activar inspección
    • "INVALID" → Debe manejar comando desconocido

7.2.3 Monitorear Salida Debug

  1. Abrir panel debug de Node-RED (barra lateral derecha)
  2. Enviar mensajes de prueba vía TCP
  3. Verificar que la salida debug muestre:
    • Mensajes entrantes
    • Resultados de procesamiento
    • Respuestas salientes

7.3 Lista de Verificación de Validación

PruebaResultado EsperadoEstado
Conexión TCPConexión exitosa al puerto de la cámara
Recepción de mensajesDebug muestra mensajes entrantes
Procesamiento de mensajesNodo function procesa correctamente
Envío de respuestasDispositivo objetivo recibe respuestas
Manejo de erroresMensajes inválidos manejados correctamente

Paso 8: Integración con Sistema de Inspección

8.1 Conectar a Disparadores de Inspección

Vincule la comunicación TCP con el flujo de inspección:

  1. Agregar nodo "All Block Outputs" (si no está presente)
  2. Conectar resultados de inspección a la salida TCP
  3. Formatear datos de inspección para transmisión TCP

8.2 Integración de Datos de Inspección

Nodo function para procesar resultados de inspección:

// Obtener resultados de inspección de All Block Outputs
const results = msg.payload;

// Extraer información clave
const inspectionSummary = {
result: results.pass ? "PASS" : "FAIL",
timestamp: new Date().toISOString(),
processing_time: results.processing_time,
roi_count: results.roi_results ? results.roi_results.length : 0
};

// Formatear para transmisión TCP
msg.payload = JSON.stringify(inspectionSummary);
return msg;

8.3 Control Bidireccional

Habilitar control remoto vía TCP:

// Manejar comandos remotos
const command = msg.payload.toString().toUpperCase();

switch(command) {
case "START_INSPECTION":
// Disparar secuencia de inspección
global.set("trigger_inspection", true);
msg.payload = "INSPECTION_STARTED";
break;

case "STOP_INSPECTION":
// Detener secuencia de inspección
global.set("trigger_inspection", false);
msg.payload = "INSPECTION_STOPPED";
break;

case "CHANGE_RECIPE":
// Lógica para cambio de receta
msg.payload = "RECIPE_CHANGED";
break;
}

return msg;

Paso 9: Solución de Problemas Comunes

9.1 Problemas de Conexión

ProblemaSíntomasSolución
No se puede conectarIndicador de estado rojoVerificar dirección IP y puerto
Conexión intermitenteIndicador amarillo intermitenteVerificar estabilidad de red
Errores de timeoutRespuestas retrasadasAjustar configuraciones de timeout
Conflictos de puertoConexión rechazadaUsar número de puerto diferente

9.2 Problemas de Transmisión de Datos

ProblemaSíntomasSolución
No se reciben datosDebug muestra mensajes vacíosVerificar configuración de formato de datos
Datos corruptosTexto ilegible en debugVerificar codificación (UTF8/Buffer)
Pérdida de mensajesMensajes faltantesVerificar estabilidad de red
Problemas con mensajes grandesDatos truncadosUsar mensajes más cortos

9.3 Técnicas de Depuración

Solución de problemas sistemática:

  1. Habilitar nodos debug en cada paso
  2. Monitorear logs de Node-RED para errores
  3. Probar primero con clientes TCP simples
  4. Verificar conectividad de red con ping

¡Éxito! Su Comunicación TCP Está Lista

Su sistema de comunicación TCP ahora puede:

  • Enviar y recibir datos entre la cámara y dispositivos externos
  • Procesar mensajes simples para comunicación básica
  • Monitorear flujo de datos con nodos debug
  • Manejar comunicación de red básica para sus aplicaciones

Mantenimiento Continuo

Revisiones Regulares del Sistema

  • Monitorear estabilidad de conexión a lo largo del tiempo
  • Verificar que la transmisión de datos funcione consistentemente
  • Revisar logs de debug para patrones de error
  • Probar comunicación después de cambios en la red

Próximos Pasos

Después de configurar la comunicación TCP básica:

  1. Pruebe con sus sistemas externos usando la conexión establecida
  2. Personalice formatos de mensaje para sus necesidades específicas
  3. Agregue lógica más compleja conforme crezcan sus requerimientos
  4. Considere otros métodos de comunicación si TCP no cubre todas las necesidades

🔗 Véase También

Para aplicaciones de alto rendimiento:

  1. Reducir frecuencia de mensajes
  2. Agrupar múltiples mensajes
  3. Usar formato binario para datos grandes
  4. Implementar compresión

Técnicas de Depuración

Solución de problemas sistemática:

  1. Habilitar nodos debug en cada paso
  2. Monitorear logs de Node-RED para errores
  3. Usar herramientas de monitoreo de red (Wireshark)
  4. Probar primero con clientes TCP simples

¡Éxito! Su Comunicación TCP Está Lista

Su